program q1
	use derivative_module
	implicit none
	real, allocatable	:: x(:), y(:), dy(:), d2y(:), V(:)
	integer 			:: n, i, j
	real 				:: E
	print*,"Enter the number of elements"; read*, n
	allocate(x(n), y(n), dy(n), d2y(n), V(n))
	do i = 1, n
		read*, x(i), y(i)
	end do
	call phyFirstDerivative(x , y, dy)
	call phySecondDerivative(x , y, d2y)
	E = 1.0 + d2y(2)/y(2)
	print*, E
	V = E + 0.5*d2y/y
	do i = 1, n
		print*, x(i), d2y(i), y(i), V(i)
	end do
end program

 